package es.ucm.fdi.isbc.viviendas.representacion;

import jcolibri.cbrcore.Attribute;
import jcolibri.cbrcore.CaseComponent;

public class ExtrasOtros implements CaseComponent {
	
	private Integer id;
	private boolean patio;
	private boolean balcon;
	private boolean zonaDeportiva;
	private boolean zonaComunitaria;
	private boolean terraza;
	private boolean piscinaComunitaria;
	private boolean jardinPrivado;
	private boolean zonaInfantil;
	private boolean piscina;
	
	
	public ExtrasOtros() {
		super();
	}
	public ExtrasOtros(int id) {
		super();
		this.id = id;
	}

	public ExtrasOtros(String stringRep)
	{
		String[] values = stringRep.split(",");
		id = Integer.valueOf(values[0]);
		this.patio = Boolean.valueOf(values[1]);
		this.balcon = Boolean.valueOf(values[2]);
		this.zonaDeportiva = Boolean.valueOf(values[3]);
		this.zonaComunitaria = Boolean.valueOf(values[4]);
		this.terraza = Boolean.valueOf(values[5]);
		this.piscinaComunitaria = Boolean.valueOf(values[6]);
		this.jardinPrivado = Boolean.valueOf(values[7]);
		this.zonaInfantil = Boolean.valueOf(values[8]);
		this.piscina = Boolean.valueOf(values[9]);
	}
	
	@Override
	public String toString() {
		return boolToString(patio) + "," + boolToString(balcon) + "," + boolToString(zonaDeportiva) + ","
				+ boolToString(zonaComunitaria) + "," + boolToString(terraza) + "," + boolToString(piscinaComunitaria)
				+ "," + boolToString(jardinPrivado) + "," + boolToString(zonaInfantil) + "," + boolToString(piscina);
	}
	
	@Override
	public Attribute getIdAttribute() {
		return new Attribute("id", DescripcionVivienda.class);
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public boolean isPatio() {
		return patio;
	}
	public void setPatio(boolean patio) {
		this.patio = patio;
	}
	public boolean isBalcon() {
		return balcon;
	}
	public void setBalcon(boolean balcon) {
		this.balcon = balcon;
	}
	public boolean isZonaDeportiva() {
		return zonaDeportiva;
	}
	public void setZonaDeportiva(boolean zonaDeportiva) {
		this.zonaDeportiva = zonaDeportiva;
	}
	public boolean isZonaComunitaria() {
		return zonaComunitaria;
	}
	public void setZonaComunitaria(boolean zonaComunitaria) {
		this.zonaComunitaria = zonaComunitaria;
	}
	public boolean isTerraza() {
		return terraza;
	}
	public void setTerraza(boolean terraza) {
		this.terraza = terraza;
	}
	public boolean isPiscinaComunitaria() {
		return piscinaComunitaria;
	}
	public void setPiscinaComunitaria(boolean piscinaComunitaria) {
		this.piscinaComunitaria = piscinaComunitaria;
	}
	public boolean isJardinPrivado() {
		return jardinPrivado;
	}
	public void setJardinPrivado(boolean jardinPrivado) {
		this.jardinPrivado = jardinPrivado;
	}
	public boolean isZonaInfantil() {
		return zonaInfantil;
	}
	public void setZonaInfantil(boolean zonaInfantil) {
		this.zonaInfantil = zonaInfantil;
	}
	public boolean isPiscina() {
		return piscina;
	}
	public void setPiscina(boolean piscina) {
		this.piscina = piscina;
	}
	
	private String boolToString(boolean b) {
		if (b) return "Si";
		else return "No";
	}

	public String getExtras() {
		String extras=Integer.toString(this.id)+",";
		extras+=Boolean.toString(this.patio)+",";
		extras+=Boolean.toString(this.balcon)+",";
		extras+=Boolean.toString(this.zonaDeportiva)+",";
		extras+=Boolean.toString(this.zonaComunitaria)+",";
		extras+=Boolean.toString(this.terraza)+",";
		extras+=Boolean.toString(this.piscinaComunitaria)+",";
		extras+=Boolean.toString(this.jardinPrivado)+",";
		extras+=Boolean.toString(this.zonaInfantil)+",";
		extras+=Boolean.toString(this.piscina);
		
		return extras;
	}
	public String imprimeExtrasCompra() {
		String extras= "patio: " + toSiNo(this.patio);
		extras+=", balcon: " + toSiNo(this.balcon);
		extras+=", zona deportiva: " + toSiNo(this.zonaDeportiva);
		extras+=", zona comunitaria: " + toSiNo(this.zonaComunitaria);
		extras+=", terraza: " + toSiNo(this.terraza);
		extras+=", piscina comunitaria: " + toSiNo(this.piscinaComunitaria);
		extras+=", jardin privado: " + toSiNo(this.jardinPrivado);
		extras+=", zona infantil: " + toSiNo(this.zonaInfantil);
		extras+=", piscina: " + toSiNo(this.piscina)+".";
		
		return extras;
	}
	private String toSiNo(boolean b) {
		if (b) return "si";
		else return "no";
	}
}